package com.esteel.settlement.pa.packet;

import java.util.Date;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;

/**
 *应答包：监管系统－>交易网
 * 查询支付指令状态
 * zhouwentong
 */
@XmlRootElement(name="Result")
@XmlAccessorType(XmlAccessType.FIELD)
public class RspBP1327 extends Answer{

	private static final long serialVersionUID = -8592568847841655813L;
	//指令状态  1：待复核 2：已复核 3：已撤销4：处理中
	 @XmlElement(name="Status")
	 private int status;
	 //支付金额
	 @XmlElement(name="TranAmount")
	 private double tranAmount;
	 //转出子账户 即付款方
	 @XmlElement(name="OutCustAcctId")
	 @Length(max=32)
	 @NotEmpty
	 private String outCustAcctId;
	 //转出会员代码
	 @XmlElement(name="OutThirdCustId")
	 @Length(max=32)
	 @NotEmpty
	 private String outThirdCustId;
	 //转入子账户  即收款方
	 @XmlElement(name="InCustAcctId")
	 @Length(max=32)
	 @NotEmpty
	 private String inCustAcctId;
	 //转入会员代码
	 @XmlElement(name="InThirdCustId")
	 @Length(max=32)
	 @NotEmpty
	 private String inThirdCustId;
	 //支付订单号
	 @XmlElement(name="ThirdHtId")
	 @Length(max=30)
	 @NotEmpty
	 private String thirdHtId;
	 //指令变动日期  若已复核或撤销，则返回指令变动的日期，若未变动则返回为空。
	 @XmlElement(name="ChangeDate")
	 private Date changeDate;
	 
	public int getStatus() {
		return status;
	}

	public void setStatus(int status) {
		this.status = status;
	}

	public double getTranAmount() {
		return tranAmount;
	}

	public void setTranAmount(double tranAmount) {
		this.tranAmount = tranAmount;
	}

	public String getOutCustAcctId() {
		return outCustAcctId;
	}

	public void setOutCustAcctId(String outCustAcctId) {
		this.outCustAcctId = outCustAcctId;
	}

	public String getOutThirdCustId() {
		return outThirdCustId;
	}

	public void setOutThirdCustId(String outThirdCustId) {
		this.outThirdCustId = outThirdCustId;
	}

	public String getInCustAcctId() {
		return inCustAcctId;
	}

	public void setInCustAcctId(String inCustAcctId) {
		this.inCustAcctId = inCustAcctId;
	}

	public String getInThirdCustId() {
		return inThirdCustId;
	}

	public void setInThirdCustId(String inThirdCustId) {
		this.inThirdCustId = inThirdCustId;
	}

	public String getThirdHtId() {
		return thirdHtId;
	}

	public void setThirdHtId(String thirdHtId) {
		this.thirdHtId = thirdHtId;
	}

	public Date getChangeDate() {
		return changeDate;
	}

	public void setChangeDate(Date changeDate) {
		this.changeDate = changeDate;
	}

	@Override
	protected String[] order() {
		String[] args={"status","tranAmount","outCustAcctId","outThirdCustId","inCustAcctId","inThirdCustId","thirdHtId","changeDate","reserve"};
		return args;
	}

}
